﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Reflection;
using Microsoft.Practices.Unity;

using ExampleWebSite.Models;
using ExampleWebSite.Requests;

using BlueSky;

using BlueSky.Web;
using BlueSky.Web.Routing;
using BlueSky.Web.Extentions;

namespace ExampleWebSite
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : HttpApplicationBase
    {                
        protected override void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Calc", action = "Index", id = "" }  // Parameter defaults
            );
        }
        
        protected override void RegisterModelBinders(ModelBinderDictionary binders)
        {            
            binders[typeof(CalcRequest)] = new CalcRequestBinder();
        }

        protected override IUnityContainer GetUnityContainer(UnityContainerFactory unityFactory)
        {
            return unityFactory.Get("unity");
        }
    }
}